﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OBL1_DiseñoDeAplicaciones.ObjetosDeNegocio
{
   public abstract class Subdivision
    {
        private static int IdSubdivision = 0;
       
        private int id;
        private Proyecto parent;
        private string descripcion;

        #region properties
        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
        public Proyecto Parent
        {
            get { return parent; }
            set { parent = value; }
        }
        #endregion

        //Constructor por defecto
        public Subdivision(string descripcion, Proyecto parent = null) {
            this.id = IdSubdivision;
            this.descripcion = descripcion;
            this.parent = parent;
            IdSubdivision++;
        }

        //Constructor por copia
        public Subdivision(int id, string descripcion, Proyecto parent = null)
        {
            this.id = id;
            this.descripcion = descripcion;
            this.parent = parent;
        }

        public abstract DateTime ObtenerFechaInicio();
        public abstract Double ObtenerCostoTotal(int pIva);
        public abstract Subdivision Clonar(Proyecto pNuevoPadre);
        public abstract void Modificarme(string pDescripcion, double pCosto, DateTime fechaInicio);


    }
}
